MySQL HAVING Clause

MySQL-এ HAVING ক্লাস ব্যবহার করে সামগ্রিক ফাংশনে শর্ত যুক্ত করতে শিখুন

মাইএসকিউএল ক্লাস হচ্ছে

HAVING ক্লাসটি SQL-এ যোগ করা হয়েছিল কারণ WHERE কীওয়ার্ডটি সমষ্টিগত ফাংশনের সাথে ব্যবহার করা যায় না।

সিনট্যাক্স হচ্ছে

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

ডেমো ডাটাবেস

নীচে নর্থওয়াইন্ড নমুনা ডাটাবেসের "গ্রাহক" টেবিল থেকে একটি নির্বাচন রয়েছে:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

মাইএসকিউএল থাকার উদাহরণ

নিম্নলিখিত SQL বিবৃতি প্রতিটি দেশে গ্রাহকদের সংখ্যা তালিকাভুক্ত করে। শুধুমাত্র 5 জনের বেশি গ্রাহকের দেশগুলি অন্তর্ভুক্ত করুন:

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

নিম্নলিখিত SQL বিবৃতি প্রতিটি দেশের গ্রাহকদের সংখ্যা তালিকাভুক্ত করে, উচ্চ থেকে নিম্ন পর্যন্ত বাছাই করা হয়েছে (শুধুমাত্র 5 জনের বেশি গ্রাহকের দেশগুলি অন্তর্ভুক্ত):

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;

ডেমো ডাটাবেস

নীচে নর্থওয়াইন্ড নমুনা ডাটাবেসের "অর্ডার" টেবিল থেকে একটি নির্বাচন রয়েছে:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

এবং "কর্মচারী" টেবিল থেকে একটি নির্বাচন:

EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

থাকার আরও উদাহরণ

নিম্নলিখিত SQL বিবৃতিতে 10টির বেশি অর্ডার বুক করা কর্মচারীদের তালিকা করা হয়েছে:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

নিম্নোক্ত SQL স্টেটমেন্ট তালিকাভুক্ত করে যদি কর্মচারীরা "Davolio" বা "Fuller" 25টির বেশি অর্ডার বুক করে থাকে:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;

অনুশীলন করুন

10টির বেশি অর্ডার বুক করা কর্মচারীদের তালিকা করতে সঠিক বাক্য গঠন নির্বাচন করুন।

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
✓ ঠিক আছে! এটি ঠিক কোন কলাম নির্বাচন করতে হবে তা নির্দিষ্ট করে
FROM
✓ ঠিক আছে! FROM টেবিল নির্দিষ্ট করতে ব্যবহৃত কীওয়ার্ড
(Orders INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
✓ ঠিক আছে! এটি সঠিকভাবে অর্ডার এবং কর্মচারী টেবিলে যোগদান করে
GROUP BY LastName
✓ ঠিক আছে! GROUP BY শেষ নাম অনুসারে ডেটা গ্রুপ করে
HAVING
✓ ঠিক আছে! HAVING একটি সামগ্রিক ফাংশনে একটি শর্ত যোগ করতে ব্যবহৃত হয়
COUNT(Orders.OrderID) > 10
✓ ঠিক আছে! এটি শুধুমাত্র 10 টির বেশি অর্ডার সহ কর্মচারী নির্বাচন করার শর্ত